/**
 * @(#)Fattura.java
 *
 * Fattura application
 *
 * @author Celani Mauro
 * @version 1.00 2013/9/15
 */
 
public class Fattura {
	
    private Acquirente utente;
    private int percentIva;
    private int progressivo;
    private PayMethods pm;
    private Data data;
    
    public Fattura(Acquirente utente, int percentIva, int progressivo, PayMethods pm){
    	this.utente = utente;
    	setPercentIva(percentIva);
    	setProgressivo(progressivo);
    	setMetodo(pm);
    	data = new Data();
    }
    
    public int getPercentIva()		{ return percentIva; }
    public int getProgressivo()		{ return progressivo; }
    public PayMethods getMetodo()	{ return pm; }
    public Data getData()               { return data; }
    
    public void setPercentIva(int percentIva)	{ this.percentIva = percentIva; }
    public void setProgressivo(int progressivo)	{ this.progressivo = progressivo; }
    public void setMetodo(PayMethods pm)        { this.pm = pm; }
    
    public float getImponibile(){
    	return getCarrello().getImponibile();
    }
    public float getIva(){
    	return Prodotto.twoDecimal(getImponibile()*percentIva/100);
    }
    public float getTotale(){
    	return getImponibile()+getIva();
    }
    
    private Carrello getCarrello(){
    	return utente.getCarrello();
    }
    
    public String checkout(){
    	return "\nCHECKOUT:\n"+toString();
    }
    
    public String toString(){
    	String s = "ID\t\tNOME\t\tPREZZO\n";
    	for(int i = 0; i < getCarrello().getSize(); i++){
    		Prodotto temp = getCarrello().getProdotto(i);
    		s += temp.getId()+"\t\t"+temp.getNome()+"\t\t"+temp.getPrezzo()+"\n";
    	}
    	s += "IMPONIBILE:\t"+getImponibile()+"\n";
    	s += "       IVA:\t"+getIva()+"\n";
    	s += "    TOTALE:\t"+getTotale()+"";
    	return s;
    }
    
}
